Python值的判断与比较: np.nan, None
None
1 | type(None) |
np.nan
1 | type(np.nan) |
np.nan 与 None
1 | None == np.nan |
与数字的比较
1 | np.nan > 10 |
总结
- 【Python2和Python3表现相同】
np.nan 只有在np.nan != np.nan或者np.nan is np.nan时为*True*** , 其他情况下和数字比较(*包括和自身*)都为**False - 【Python2和Python3表现相异】
Python3与Python2在直接使用*np.nan**时表现正常,但是当涉及到DataFrame*的**NaN时表现不同
特殊情况
DataFrame中的NaN与数字比较时会出现有时候为True有时候为False的情况
- 这种情况出现在Python3中,当**NaN** 与数字比较时
- 此时对于列属性类型为数值型,那么返回**False**
- 否则返回**True**
- Python2中*NaN**和数字的就是np.nan*和数字比较的结果,都为**False
Python2与Python3比较
- 代码示例:
1 | # Python3: |
1 | # Python2: |